#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int n,r;
int a[1005];
int main(void){
    scanf("%d%d",&n,&r);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    int ans=0;
    //last是当前组成的线段最右延伸位置
    int last=-1;
    while(last<n-1){
        int pos=-1;
        //贪心从最右开始找，保证找到的线段是当前最右线段的下一个
        for(int i=n-1;i>max(-1,last-r+1);i--){
            //满足交叉，连续
            if(a[i]==1 && i-r<=last){
                pos=i;
                break;
            }
        }
        if(pos==-1){
            //断开了
            printf("-1\n");
            return 0;
        }
        ans++;
        last=pos+r-1;
    }
    printf("%d\n",ans);
    return 0;
}